home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / dskut / bootany.zip / READ.ME < prev    next >
Text File  |  1990-10-29  |  15KB  |  326 lines

  1. ********************************************************************************
  2.  
  3.     This program uses methods different than those documented by FDISK
  4.     to boot your computer. You should read the following text to
  5.     understand how BOOTANY works and what it will do for you.
  6.  
  7. ********************************************************************************
  8.  
  9.  
  10. This package consists of the following files:
  11.  
  12.    BOOTANY      - The NMAKE file for BOOTANY.SYS
  13.    BOOTANY.ASM  - The source code to an assembler program which can be
  14.                   used as a replacement for the master boot program on
  15.                   hard disks with multiple partitions.
  16.    BOOTANY.SYS  - The binary image used as the new master boot program.
  17.    BOOTANY.H    - Definitions and structures used by the C programs.
  18.    BOOTANY.INC  - Definitions and equates used by BOOTANY.ASM and
  19.                   BSTRAP.ASM
  20.    BOOTIO.ASM   - The source for the program which reads or writes the
  21.                   Master Boot Record.
  22.    BSTRAP       - The NMAKE file for BSTRAP.COM
  23.    BSTRAP.ASM   - The source for the program which installs BOOTANY.SYS
  24.                   onto your hard disk.
  25.    BSTRAP.COM   - The executable file which will install BOOTANY.SYS
  26.    INSTBOOT.BAT - A batch file which when executed installs BOOTANY.SYS
  27.                   on your hard disk.
  28.    PREFDISK     - The NMAKE file for PREFDISK.EXE
  29.    PREFDISK.C   - The source for the program to run before FDISK.
  30.    PREFDISK.EXE - Program to invalidate partition table entries before
  31.                   running FDISK.
  32.    PREINST      - The NMAKE file for PREINST.EXE
  33.    PREINST.C    - The source for the program to validate all partition
  34.                   Table entries
  35.    PREINST.EXE  - Program to validate all partition table entries before
  36.                   Running BSTRAP
  37.    READ.ME      - This file
  38.    SHOWBOOT     - The NMAKE file for SHOWBOOT.EXE
  39.    SHOWBOOT.C   - The source for the program which displays the master
  40.                   partition table
  41.    SHOWBOOT.EXE - Program to display the master partition table
  42.  
  43.  
  44.  
  45. Section 1 - How the ROM BIOS Boots an Operating System
  46.  
  47. When an IBM PC or compatible computer boots (via <CTRL><ALT><DEL> or
  48. by turning the power on), the last operation the ROM BIOS boot strap
  49. program does is to read the first sector of the A: drive or if no disk
  50. is present in A:, the first sector of the C: drive. After the sector is
  51. read to the 512 bytes starting at address 0000:7C00, the boot strap
  52. program validates the sector by insuring that the last 2 bytes
  53. (0000:7DFE) contain the hex value 55AA. If they are, the boot strap
  54. program branches to 0000:7C00. It is important to note that up until
  55. this point NO operating system services have been created or are
  56. available. This is why some programs (like Flight Simulator) can be
  57. started at system boot, and also why the PC is capable of running
  58. multiple operating systems.
  59.  
  60.  
  61. Section 2 - The Master Boot Record
  62.  
  63. On a floppy diskette formatted with the DOS command "FORMAT A: /s",
  64. the first sector will contain EB34xx in the first three bytes. This
  65. is a jump instruction which bypasses the next several bytes. Following
  66. this will be an 8 character system id. On machines using IBM DOS this
  67. will be the characters "IBM " followed by the version of DOS. And
  68. of course the last two bytes of the sector will contain hex 55AA. This
  69. is the DOS boot program.
  70.  
  71. On hard disks, which must be set up with FDISK, other than the last
  72. two bytes containing hex 55AA and the first byte containing an
  73. executable instruction, this first sector is quite different. It is
  74. called the Master Boot Record.
  75.  
  76. Starting at byte 446 (hex 1BE) is the Partition Table. It contains
  77. 4 entries, so your hard disk can be divided into at most 4 partitions.
  78. Each entry has the following format:
  79.  
  80. Offset   Size   Field              Purpose
  81. +0         1    BootIndicator      Indicates if partition is startable
  82.                   hex 00             Non-startable partition
  83.                   hex 80             Startable partition
  84. +1         1    BeginHead          Side on which partition starts
  85. +2         1    BeginSector        Sector at which partition starts
  86. +3         1    BeginCyl           Cylinder at which partition starts
  87. +4         1    SystemId           Identifies partition type
  88.                   hex 00             Empty partition entry
  89.                   hex 01             DOS FAT-12
  90.                   hex 02             XENIX
  91.                   hex 04             DOS FAT-16
  92.                   hex 05             Extended partition
  93.                   hex 06             DOS > 32M
  94.                   hex 07             HPFS
  95.                   hex 64             Novell
  96.                   hex 75             PCIX
  97.                   hex DB             CP/M
  98.                   hex FF             BBT
  99. +5         1    EndHead            Side on which partition ends
  100. +6         1    EndSector          Sector at which partition ends
  101. +7         1    EndCyl             Cylinder at which partition ends
  102. +8         4    RelativeSectors    # Sectors before start of partition
  103. +12        4    NumberSectors      # Sectors in partition
  104.  
  105.  
  106. The master boot program (starting at byte 0) copies itself to a
  107. different location in memory and then inspects the partition table
  108. looking for a startable partition. If more than one startable partition
  109. exists or any BootIndicator is not hex 80 or 0 than "Invalid Partition
  110. Table" will be written on the screen and the program will enter an
  111. endless loop.  After successfully validating the table, the program then
  112. obtains the Begin Head, Sector, and Cylinder for the startable partition
  113. and reads it from disk to 0000:7C00. It validates that the hex 55AA is
  114. present and then jumps to location 0000:7C00.  From this point on
  115. startup is identical to booting from a floppy.
  116.  
  117.  
  118. Section 3 - OS/2
  119.  
  120. OS/2 supports the use of multiple partitions on a hard disk just as
  121. DOS does. In fact, FDISK is again how OS/2 partitions are defined.
  122. What is slightly strange though, is that HPFS partitions must be
  123. defined using FDISK as DOS primary or secondary partitions. This
  124. means that they are initially defined as FAT partitions. However,
  125. when OS/2 formats that partition as HPFS it updates the Partition
  126. Table to indicate a type of 07.
  127.  
  128. During installation, OS/2 tries to install itself in the first DOS
  129. partition it finds - even if its too small or something is already
  130. there. If it doesn't find a DOS partition it will look for the first
  131. HPFS and install itself there. OS/2 installation also marks the
  132. installed OS/2 partition as the "Active" partition. The BOOT program
  133. accompanying OS/2 1.2 changes the active partition to the OS/2 or
  134. DOS partition. Re-booting the computer causes the appropriate
  135. operating system to be started.
  136.  
  137.  
  138. Section 3 - Multiple "Primary" partitions.
  139.  
  140. Primary partitions basically are those with system ids other than 0 or
  141. 5. A 0 system id indicates that the partition entry is not in use.  Type
  142. 5 is a special type of partition which I will discuss a little later.
  143. Type 5 partitions cannot be marked startable.
  144.  
  145. DOS and OS/2 (and presumably other operating systems) behave similarly
  146. with regards to how they handle multiple primary partitions. If a PC
  147. contains multiple hard disks, each must contain a primary partition
  148. valid for the target operating system for it to be recognized.  If both
  149. disks also contained a secondary, after boot the drive configuration
  150. would be:
  151.  
  152.    C: First hard disk's primary partition
  153.    D: Second hard disk's primary partition
  154.    E: First hard disk's secondary partition
  155.    F: Second hard disk's secondary partition
  156.  
  157. If the primary partition on the first drive became unavailable, the
  158. operating system could (and woould) boot off of the second drive's
  159. primary partition. Unknown partition types are completely ignored by the
  160. operating system so a hard disk with no known primary partition will be
  161. skipped.
  162.  
  163. When a single drive is configured with multiple primaries similar
  164. logic is encountered. First all unknown partitions are ignored by
  165. the operating system. Sec